// components/home-groups/home-groups.ts
import tran from '../../utils/language'
import { groupJoin, groupLeave } from '../../utils/api.js'
Component({
  lifetimes: {
    created() {
      // 在组件实例刚刚被创建时执行
    },
    // 
    attached() {
      // 在组件实例进入页面节点树时执行
    },
    ready() {
      // 在组件在视图层布局完成后执行
    }
  },
  /**
   * 组件的属性列表
   */
  properties: {
    groupList: {
      type: Array,
      value: [],
      observer(newVal, old, path) {
        // 在这里处理值变化逻辑
        if (newVal) {
          this.setData({
            list: newVal
          })
        }
      }
    }
  },
  /**
   * 组件的初始数据
   */
  data: {
    _t: tran._t('homeGroups'),
    _tBase: tran._t('base'),
    background: '',
    isJoinFlag: true,
    list: [
      {
        title: '每周热榜',
        des: '欢迎加入“每周热榜🔥”，这里是每周探讨热门话题的乐园！ 在这里，你不仅能找到志同道合的朋友，还能参与我们定期举行的主题活动，聊得开心，玩得尽兴！🚀🎉',
        imgs: ["https://res.wx.qq.com/wxdoc/dist/assets/img/0.4cb08bb4.jpg", "https://res.wx.qq.com/wxdoc/dist/assets/img/0.4cb08bb4.jpg", "https://res.wx.qq.com/wxdoc/dist/assets/img/0.4cb08bb4.jpg"],
        background: 'linear-gradient(135deg, #FFF0E6 0%, #DAFFF3 100%)',
        isJoinFlag: true
      },
      {
        title: '每周热榜',
        des: '欢迎加入“每周热榜🔥”，这里是每周探讨热门话题的乐园！ 在这里，你不仅能找到志同道合的朋友，还能参与我们定期举行的主题活动，聊得开心，玩得尽兴！🚀🎉',
        imgs: ["https://res.wx.qq.com/wxdoc/dist/assets/img/0.4cb08bb4.jpg", "https://res.wx.qq.com/wxdoc/dist/assets/img/0.4cb08bb4.jpg", "https://res.wx.qq.com/wxdoc/dist/assets/img/0.4cb08bb4.jpg"],
        background: 'linear-gradient(135deg, #FFF0E6 0%, #DACFE1 100%)',
        isJoinFlag: false
      },
      {
        title: 'ESFP欢乐时光',
        des: '欢迎加入“每周热榜🔥”，这里是每周探讨热门话题的乐园！ 在这里，你不仅能找到志同道合的朋友，还能参与我们定期举行的主题活动，聊得开心，玩得尽兴！🚀🎉',
        imgs: ["https://res.wx.qq.com/wxdoc/dist/assets/img/0.4cb08bb4.jpg", "https://res.wx.qq.com/wxdoc/dist/assets/img/0.4cb08bb4.jpg", "https://res.wx.qq.com/wxdoc/dist/assets/img/0.4cb08bb4.jpg"],
        background: "url('/images/bg1.png') no-repeat 100% 100%",
        isJoinFlag: true
      },
      {
        title: 'INTP聚集地',
        des: '欢迎加入“每周热榜🔥”，这里是每周探讨热门话题的乐园！ 在这里，你不仅能找到志同道合的朋友，还能参与我们定期举行的主题活动，聊得开心，玩得尽兴！🚀🎉',
        imgs: ["https://res.wx.qq.com/wxdoc/dist/assets/img/0.4cb08bb4.jpg", "https://res.wx.qq.com/wxdoc/dist/assets/img/0.4cb08bb4.jpg", "https://res.wx.qq.com/wxdoc/dist/assets/img/0.4cb08bb4.jpg"],
        background: "url('/images/bg2.png') no-repeat 100% 100%",
        isJoinFlag: true
      }
    ],
    popupParams: {
      showPopup: false,
      showType: 0 // 0加入  1退出
    },
    tapInfo: {
      groupTypeId: '',
      groupId: ''
    }
  },

  /**
   * 组件的方法列表
   */
  methods: {
    /**
     * 跳转到群成员页面
     * @param e 
     */
    goGroup (e: any) {
      const flag = this.isLogin()
      if (!flag) {
        this.triggerEvent('homeGroupIsLogin', true)
        return false
      }
      const { info } = e.currentTarget.dataset
      if(!info.groupId) {
        wx.showToast({
          title: '请先加入该群组再点击',
          icon: 'none'
        })
        return false
      }
      wx.navigateTo({
        url: `/pages/group/members/index?info=${JSON.stringify(info)}`
      })
    },
    goInfo (e: any) {
      const flag = this.isLogin()
      if (!flag) {
        this.triggerEvent('homeGroupIsLogin', true)
        return false
      }
      const { info } = e.currentTarget.dataset
      if(!info.groupId) {
        wx.showToast({
          title: '请先加入该群组再点击',
          icon: 'none'
        })
        return false
      }
      wx.navigateTo({
        url: `/pages/group/index?info=${JSON.stringify(info)}`
      })
    },
    /**
     * 判断用户是否注册完善
     */
    isLogin () {
      const loginInfo = wx.getStorageSync('loginInfo') || {}
      if (loginInfo && Object.keys(loginInfo).length > 0) {
        if (loginInfo.completedStep == 5) { // 注册完善
          return true
        } else {
          return false
        }
      } else {
        return false
      }
    },
    closePopup() {
      this.setData({ popupParams: { showPopup: false, showType: 0 } })
    },
    /**
     * 加入群组
     */
    joinGroup(e: any) {
      const flag = this.isLogin()
      if (!flag) {
        this.triggerEvent('homeGroupIsLogin', true)
        return false
      }
      const { info } = e.currentTarget.dataset
      const { popupParams } = this.data
      popupParams.showPopup = true
      popupParams.showType = 0
      // 打开确认框
      this.setData({
        tapInfo: info,
        popupParams
      })
    },
    /**
     * 退出群组
     * @param e 
     */
    exitGroup(e: any) {
      const { info } = e.currentTarget.dataset
      const { popupParams } = this.data
      popupParams.showPopup = true
      popupParams.showType = 1 // 退出
      // 打开确认框
      this.setData({
        tapInfo: info,
        popupParams
      })
    },
    joinConfirm() {
      const { tapInfo, popupParams } = this.data
      if (popupParams.showType == 1) { // 退出
        const params = {
          groupTypeId: tapInfo.groupTypeId,
          groupId: tapInfo.groupId
        }
        groupLeave(params).then(res => {
          wx.showToast({
            title: '退出成功'
          })
          popupParams.showPopup = false
          this.setData({
            popupParams
          })
          this.triggerEvent('searchGroup')
        })
      } else { // 加入
        const params = {
          groupTypeId: tapInfo.groupTypeId
        }
        groupJoin(params).then(res => {
          wx.showToast({
            title: '加入成功'
          })
          popupParams.showPopup = false
          this.setData({
            popupParams
          })
          this.triggerEvent('searchGroup')
        })

      }

    }
  }
})